As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to these users is an information handling system. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may vary with respect to the type of information handled; the methods for handling the information; the methods for processing, storing or communicating the information; the amount of information processed, stored, or communicated; and the speed and efficiency with which the information is processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include or comprise a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
When booting a computer system in an information handling system, a user typically has several bootable devices, from which he or she may choose to boot the computer system. Certain bootable devices, such as floppy disk drives or compact-disk read-only-memory (“CD-ROM”) drives, can emulate or receive controls from the basic input-output system, or (“BIOS”). Other example bootable devices, such as devices that rely on the peripheral component interconnect bus, or “PCI devices,” supply their own boot code. When booting, a customer may bring up a list of possible bootable devices and assign a rank to each bootable device to form a “boot order” for the collection of bootable devices. The computer system will then follow the boot order when booting, attempting to boot from the first-ranked bootable device, and then, upon failure, attempting to boot from each successive bootable device in the boot order. The user will expect, and often require, that this boot order remain constant from one reboot to the next.
Maintaining a constant boot order for BIOS-emulated or -controlled devices is relatively easy because the BIOS remains constant from reboot to reboot. Likewise, PCI devices can be tracked using an identifier, the bus:device:function number, that is guaranteed to be unique for each PCI device by the PCI specification. Bootable devices are increasingly relying on the Universal Serial Bus standard, or “USB,” however, and bootable USB devices are typically not uniquely identifiable by the computer system from reboot to reboot. Server systems, such as Dell's 9G PowerEdge Server systems, now support multiple bootable USB devices. These bootable USB devices could be of the same type, such as bootable USB mass-storage devices. The USB specification guarantees that, for any USB device that is associated with a Serial Number, a concatenation of the Device ID, Vendor ID, and the device's Serial Number will be unique. This concatenation contains too many bytes to fit into the existing BIOS signature fields of the predefined BIOS boot order table. Given the ease with which USB devices can be connected and disconnected in information handling systems, changes in the USB topology may happen quite frequently. Bootable USB devices may be “misplaced” in the information handling system, and as a result, the information handling system may not be able to follow the boot order set by the user in a previous reboot. Although bootable USB devices may be pinpointed by their location, the user must subject himself or herself to the tedious process of plugging, unplugging, and adding USB hubs as necessary to track a specific bootable USB device.